#pragma once

#include "..\FilesRefactor\FilesRefactor.h"
#include "FrogMessageBox.h"

class IReportProgess
{
public:

	FilesRefactor m_FilesRefactor;

	IReportProgess():
	m_FilesRefactor(IReportProgess::ReportProgressCallbackFunc, FrogMessageBox, this)
	{
	}	

	virtual void ReportProgress(int progress, bool closeProgressWindow) = 0;

	virtual void ExecuteCommand()
	{
	}

private:

	static void ReportProgressCallbackFunc(void* pt2Object, int progress, bool closeProgressWindow)
	{
		IReportProgess* reportProgess = (IReportProgess*)pt2Object;

		if (reportProgess != NULL)
		{
			reportProgess->ReportProgress(progress, closeProgressWindow);
		}
	}

};